Information processing device, information processing system and information processing method

ABSTRACT

An information processing device includes an acquisition unit which acquires information of acceleration, angular velocity, and magnetic intensity of an operation device, a coordinate conversion unit which converts the angular velocity acquired by the acquisition unit into global angular velocity in a global coordinate system using information of posture angles of the operation device, an initial posture angle calculation unit which calculates a posture angle of the operation device in the initial stage in the global coordinate system based on the information of the acceleration and the magnetic intensity, an updating unit which updates the posture angle of the operation device in the global coordinate system based on information of the global angular velocity, and a control unit which causes the coordinate conversion unit to convert the first angular velocity into the global angular velocity and to convert a second angular velocity into the global angular velocity.

BACKGROUND

The present disclosure relates to an information processing device, an information processing system, and an information processing method which are used to execute calculation for realizing motions of an operation target according to motions of an operation device that includes an acceleration sensor, and the like, based on information obtained from the acceleration sensor, and the like, when a user operates the operation device in a three-dimensional space.

In recent years, various kinds of space operation type operation devices or input devices have been proposed. For example, an input device described in Japanese Unexamined Patent Application Publication (Translation of PCT Application) No. 6 -501119 detects six-dimensional motions of a mouse in a three-dimensional space. Specifically, the input device includes an accelerometer which detects acceleration in orthogonal three axes, and a rotation speed sensor which detects rotation speed in the vicinity of the orthogonal three axes. A system including the input device determines a position, a posture, and the like of its own based on obtained accelerations and rotation speeds, and a computer such as a display device enables a GUI (Graphical User Interface) to realize motions according to the motions of the input device (for example, refer to Japanese Unexamined Patent Application Publication (Translation of PCT Application) No. 6 -501119).

SUMMARY

When a user operates the operation target using the operation device such as the input device, or the like described in Japanese Unexamined Patent Application Publication (Translation of PCT Application) No. 6 -501119, however, it is necessary to hold the operation device so that the detection axis of the sensor included in the operation device coincides with the axis of the operation target. This means that it is necessary for the user to turn the operation device toward a predetermined direction while checking a part held in his or her hand when the user starts an operation of holding the operation device, or when the user corrects an error (an error between motions of the operation device and motions of the operation target, or the like).

As such, when the user frequently turns the eyes or the user frequently pays attention to the holding part, such as checking his or her own position holding the operation device, it is easy for the user to have autonomic dystonia such as fatigue, motion sickness, or the like.

Thus, it is desired to realize an operation device that makes the operation target be operable even when the user orients toward an arbitrary direction, or holds the operation device in an arbitrary holding way, in other words, even when the operation device is held in an arbitrary posture in a three-dimensional space. In order to realize such an operation device, it is necessary to recognize the relationship between the detection axis of a sensor and the axis of the operation target (in other words, the posture of the operation device in a three-dimensional space) not by consciousness of the user, but by the operation device or a system including the device.

In addition, particularly when an operation device provided with an acceleration sensor is operated and moved, both gravity acceleration and movement acceleration are detected by the acceleration sensor, and therefore, research has to be conducted for calculation for recognition of the posture of the operation device.

It is desirable to provide an information processing device, an information processing system, and an information processing method which enables an operation by an operation device by recognizing the posture of the operation device while suppressing occurrence of a calculation error even when the posture of the operation device held by a user is any posture in a three-dimensional space.

An information processing device according to an embodiment of the disclosure is equipped with an acquisition unit, a coordinate conversion unit, an initial posture angle calculation unit, an updating unit, and a control unit.

The operation device includes an acceleration sensor having an orthogonal three-axis detection axis, an angular velocity sensor having the orthogonal three-axis detection axis, and a magnetic sensor having the orthogonal three-axis detection axis in a local coordinate system, and can be operated in an arbitrary posture by a user in a three-dimensional space.

The acquisition unit acquires information of acceleration, angular velocity, and magnetic intensity of an operation device which are detected by each of the acceleration sensor, the angular velocity sensor, and the magnetic sensor thereof.

The coordinate conversion unit converts the angular velocity acquired by the acquisition unit into a global angular velocity in a global coordinate system which indicates the three-dimensional space based on information of posture angles of the operation device in the global coordinate system.

The initial posture angle calculation unit calculates a posture angle of the operation device in the initial stage in the global coordinate system out of the posture angles based on the information of the acceleration and the magnetic intensity acquired by the acquisition unit at the start of an operation of the operation device by the user.

The updating unit updates the posture angle of the operation device in the global coordinate system based on information of the global angular velocity converted by the coordinate conversion unit.

The control unit causes the coordinate conversion unit to convert the first angular velocity acquired by the acquisition unit at the start of the operation into the global angular velocity using information of the initial posture angle calculated by the angle calculation unit and to convert a second angular velocity acquired after the acquisition of the first angular velocity into the global angular velocity using information of the updated posture angle.

According to the embodiment of the disclosure, posture angles including the initial posture angle of the operation device in the global coordinate system are calculated based on information of acceleration, angular velocity, and magnetic intensity of the orthogonal three axes. Thus, the user can operate an operation target using the operation device in an arbitrary posture in the three-dimensional space.

In addition, when the operation is started by the user, the first angular velocity is converted by the coordinate conversion unit using information of the initial posture angle calculated based on information including the acceleration obtained by the acceleration sensor. In other words, in the moment of starting the operation, the acceleration sensor detects only gravity acceleration in practice, the initial posture angle is calculated based on information including the gravity acceleration by the initial posture angle calculation unit, and the coordinate conversion unit uses the calculated information.

However, during the operation by the user thereafter, the acceleration sensor detects a value obtained by adding movement acceleration (inertia acceleration) to the gravity acceleration. Thus, if a posture angle is calculated based on acceleration including such movement acceleration obtained by the acceleration sensor during the operation by the user, a serious error occurs.

Therefore, a coordinate conversion process is executed for the second angular velocity acquired after the first angular velocity acquired as the initial value based on information not including the information of the movement acceleration, that is, based on information of a posture angle updated at least once.

Accordingly, it is possible to suppress the circumstance in which the influence caused by the movement acceleration generated during the operation of the operation device by the user is exerted during calculation of a posture angle of the operation device and thereby causing an error in the calculation.

The coordinate conversion unit may convert the acceleration acquired by the acquisition unit into global acceleration in the global coordinate system based on information of a posture angle of the operation device updated by the updating unit. Since the information of the updated posture angle by the updating unit does not include the information of the movement acceleration as described above, it is possible to reflect motions of the operation device on the operation target by converting the acceleration into the global acceleration based on the information of the posture angle.

The information processing device may further include a determination unit which determines that an operation of the operation device has been started by the user using information of at least one of the acceleration, the angular velocity and the magnetic intensity acquired by the acquisition unit. Accordingly, since the time of starting the operation of the operation device is regulated, an output time point of an initial posture angle of the operation device can be tightly regulated.

The operation target of the operation device may be a three-dimensional image displayed on the screen of a display device which is electrically connected to the information processing device.

An information processing system according to another embodiment of the disclosure includes an operation device and a control device, the operation device includes an acceleration sensor having an orthogonal three-axis detection axis, an angular velocity sensor having the orthogonal three-axis detection axis, a magnetic sensor having the orthogonal three-axis detection axis in a local coordinate system, and a transmission unit transmitting information of acceleration, angular velocity, and magnetic intensity detected by each of the acceleration sensor, the angular velocity sensor, and the magnetic sensor, and can be operated in an arbitrary posture by a user in a three-dimensional space, and the control device includes a reception unit which receives the information transmitted from the operation device, and a coordinate conversion unit, an initial posture angle calculation unit, an updating unit, and a control unit as described above.

An information processing method according to still another embodiment includes acquiring information of acceleration, angular velocity, and magnetic intensity of an operation device, which includes an acceleration sensor having an orthogonal three-axis detection axis, an angular velocity sensor having the orthogonal three-axis detection axis, and a magnetic sensor having the orthogonal three-axis detection axis in a local coordinate system and can be operated in an arbitrary posture by a user in a three-dimensional space, which are detected by each of the acceleration sensor, the angular velocity sensor, and the magnetic sensor, calculating a posture angle of the initial stage out of posture angles of the operation device in a global coordinate system indicating the three-dimensional space based on information of the acceleration and the magnetic intensity acquired at the start of an operation of the operation device by the user, converting a first angular velocity acquired at the start of the operation into global angular velocity in the global coordinate system using the calculated posture angle of the initial stage, calculating a new posture angle instead of the posture angle of the initial stage based on information of the converted global angular velocity, and converting a second angular velocity acquired after the acquisition of the first angular velocity into the global angular velocity using information of the calculated new posture angle.

According to the embodiments of the disclosure, even if the operation device held by the user takes any posture in the three-dimensional space, the posture of the operation device can be recognized while suppressing the occurrence of a calculation error, whereby an operation by the operation device is possible.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing an information processing system according to an embodiment of the present disclosure;

FIG. 2 is a diagram showing a configuration of hardware of an operation device according to an embodiment of the disclosure;

FIG. 3 is a diagram showing a configuration of hardware of a display device according to an embodiment of the disclosure;

FIG. 4 is diagram for illustrating detection axes of each sensor of the operation device and a relative arrangement thereof;

FIG. 5 is a diagram showing the relationship between a local coordinate system and a global coordinate system;

FIG. 6 is a flowchart showing a process of the operation device;

FIG. 7 is a diagram for illustrating the principle of the calculation process shown in FIG. 6 and showing the state where the inclination (posture) of a sensor substrate is inclined in the global coordinate system;

FIG. 8 is a diagram for illustrating the principle of the calculation process shown in FIG. 6 as in FIG. 7;

FIG. 9 is a diagram showing the appearance when a user actually operates an object using the operation device according to the embodiment of the disclosure;

FIG. 10 is a diagram showing a distance between a display unit of a display device and (eyes) of a user;

FIG. 11 is a diagram for illustrating a display principle of 3D video in a depth direction (X axis direction) and shows a state where an object is displayed inside a display unit; and

FIG. 12 is a diagram for illustrating a display principle of 3D video in a depth direction (X axis direction) and shows a state where an object is displayed in front of the display unit.

DETAILED DESCRIPTION OF EMBODIMENTS

Hereinafter, an embodiment of the present disclosure will be described with reference to drawings.

[Configuration of Information Processing System]

FIG. 1 is a diagram showing an information processing system according to an embodiment of the disclosure.

The information processing system includes an operation device 10 which is operated by a user, and a display device 50 which receives operation information transmitted from the operation device 10 to execute a display process based on the information. The operation device 10 and the display device 50 are electrically connected to each other, and in the embodiment, the units are connected so that wireless communication is performed through infrared rays, radio waves, or the like.

The operation device 10 is formed in a hand-held size, and formed in, for example, a spherical shape. The display device 50 functions as a control device executing control of display such as rotating or moving an object (operation target) 51 in the screen of a display unit 52 with operation of a user using the operation device 10.

As a typical example of the display device 50, there is, for example, a 3D (dimension) TV, or the like, which can display the 3D object 51. The operation target is not limited to 3D images, but may be 2D images such as icons, pointers, and the like. Alternatively, the icons and pointers may be displayed as 3D images.

FIG. 2 is a diagram showing a configuration of hardware of the operation device 10 according to an embodiment of the disclosure. The operation device 10 includes an acceleration sensor 5, an angular velocity sensor 6, a magnetic sensor 7, a CPU 2, a RAM 3, a RAM 4, and a transmitter 8. In addition, the operation device 10 includes a power source not shown in the drawing, a pressure sensor 9, a rewritable memory, and the like.

Instead of the CPU 2, programmable hardware, for example, an FPGA (Field Programmable Gate Array), or the like may be used. As the angular velocity sensor 6, a device is used, which detects an angular velocity using, for example, a Coriolis force.

The hardware is arranged in a housing 11 of a spherical shape so as to be fixed to the housing 11. The pressure sensor 9 is installed in plural in, for example, the inner side of the housing 11, and the pressure sensor group detects a pressured position by a user and the pressure therein.

FIG. 3 is a diagram showing a configuration of hardware of the display device 50 according to an embodiment of the disclosure. The display device 50 includes a CPU 53, a ROM 54, and a RAM 55 as in general computers, and also includes a display unit 52, a communication unit 56, and a storage unit 57. The communication unit 56 mainly functions as a receiver here. The storage unit 57 is a typical auxiliary (secondary) storage unit of the ROM 54 and the RAM 55.

Furthermore, the display device 50 has a configuration in which a control part (control device) which receives information transmitted from the operation device 10 and controls the display of the object 51 is integrated with the display unit 52, but the control part and the display unit may be connected to each other as separate units so as to perform communication in a wire or wireless manner.

FIG. 4 is diagram for illustrating detection axes of each sensor of the operation device 10 and a relative arrangement thereof. All of the acceleration sensor 5, the angular velocity sensor 6, and the magnetic sensor 7 have orthogonal three-axis detection axes, respectively. In other words, the acceleration sensor 5 has sensors (5 a, 5 b, and 5 c) corresponding to three detection axes. The angular velocity sensor 6 and the magnetic sensor 7 also have sensors (6 a, 6 b, and 6 c), and (7 a, 7 b, and 7 c), respectively.

For example, all the sensors 5, 6, and 7 are packaged in single shared package. Alternatively, the sensors 5, 6, and 7 are packaged in separate packages and mounted on single shared sensor substrate.

The ROM 4, a memory, which is not shown in the drawing, of the operation device 10, and/or the ROM 54 and the storage unit 57 of the display device 50 store software, or the like, for realizing a process shown in FIG. 6 to be described later. The process shown in FIG. 6 is a process for recognizing the posture of the operation device 10. In an embodiment to be described below, the CPU 2 and the above-described software mainly function as control units.

FIG. 5 is a diagram showing the relationship between a local coordinate system and a global coordinate system.

The display device 50 is put on the ground surface. Herein, a coordinate system which is fixed to the ground surface or the display device 50 is called a global coordinate system. In addition, a coordinate system which is fixed to the sensor substrate 20 of the operation device 10 including the coordinate that can freely move with respect to the global coordinate system is called a local coordinate system. The sensor substrate 20 is a shared substrate on which the acceleration sensor 5, the angular velocity sensor 6, and the magnetic sensor 7 are mounted as described above.

For convenience of description, hereinafter, the global coordinate system is indicated by large letters (X, Y, and Z), and the local coordinate system is indicated by small letters (x, y, and z). However, in order to facilitate understating of sentences, description will be provided using the expressions “local” and “global” as far as possible. The ground surface is set to an X-Y plane in the global coordinate system, and a surface parallel to the main surface of the substrate is set to an x-y plane in the local coordinate system.

[Process Content of Operation Device]

FIG. 6 is a flowchart showing a process of the operation device.

A signal output from each of the sensors 5 (5 a, 5 b, and 5 c), 6 (6 a, 6 b, and 6 c), and 7 (7 a, 7 b, and 7 c) is converted to digital information by an AD converter (Step ST101). In this case, the CPU 2 mainly functions as an acquisition unit which acquires information of acceleration, angular velocity, and magnetic intensity. Information acquired by the acquisition unit is first used in a process of start determination (Step ST102). The start determination is determination of whether or not a user is holding the operation device and started an operation.

The start determination process is executed using information obtained from, for example, at least one of the acceleration sensor 5, the angular velocity sensor 6, and the magnetic sensor 7. In FIG. 6, the start determination process is executed using information obtained from, for example, all of the sensors 5, 6 and 7, but a start determination process using Formulas 1 and 2 below uses only the acceleration sensor 5. When the start determination process is executed, for example, the CPU 5 and software in which the calculation content is described function as determination units.

√{square root over (a _(x) ² +a _(y) ² +a _(z) ²)}=Constant   Formula 1

B<°{square root over (a _(x) ² +a _(y) ² +a _(z) ²)}<C   Formula 2

a_(x), a_(y), a_(z): acceleration of three axes (local acceleration) detected by the acceleration sensor (5 a, 5 b, and 5 c)

B, C: constant

The “constant” of Formula 1 is set to, for example, a value close to zero. When Formula 1 is not valid, it means that movement acceleration is added to the acceleration sensor 5 in addition to gravity acceleration, and it is determined that the operation device has been moved. In Formula 2, when the detected acceleration is out of a predetermined range, it is determined that the operation device has been moved.

Processes after Step ST103 are processes executed when it is determined that an operation has started.

When an operation by the operation device 10 has started, in Step ST103, initial posture angles around global X and Y axes of the operation device 10 are calculated respectively based on information of acceleration (particularly, acceleration (a_(x), a_(y)) in the x and y axis directions) detected by the acceleration sensor 5. FIG. 7 is a diagram for illustrating the principle of the calculation process and showing the state where the inclination (posture) of the sensor substrate 20 is inclined in the global coordinate system.

When the initial posture angle around, for example, the global Y axis, that is an angle θ_(x) from the X axis is to be calculated, the calculation is performed with Formula 3 below based on the information of the acceleration a_(x). In Formula 3, as shown in FIG. 8, a value of gravity 1G detected by the acceleration sensor 5 a of the x axis is set to, for example, A_(xG), a value of the acceleration sensor 5 a is set to a_(x) in a state where the sensor substrate 20 is inclined (a state where the acceleration sensor 5 (5 a) is inclined).

In the same manner, the initial posture angle around the global X axis, that is, an angle θ_(y) from the Y axis is calculated with Formula 4 based on the information of the acceleration a_(y). A value of the acceleration sensor 5 b of the y axis for gravity 1G is set to A_(yG).

θ_(x) =−a sin(a _(x) /A _(xG)) when a _(x)<0 and a_(z)>0

θ_(x)=180+a sin(a _(x) /A _(xG)) when a _(x)<0 and a_(z)<0

θ_(x)=180+a sin(a _(x) /A _(xG)) when a _(x)>0 and a_(z)<0

θ_(x)=360+a sin(a _(x) /A _(xG)) when a _(x)>0 and a_(z)>0   Formula 3

θ_(y) =−a sin(a _(y) /A _(yG)) when a _(y)<0 and a_(z)>0

θ_(y)=180+a sin(a _(y) /A _(yG)) when a _(y)<0 and a_(z)<0

θ_(y)=180+a sin(a _(y) /A _(yG)) when a _(y)>0 and a_(z)<0

θ_(y)=360+a sin(a _(y) /A _(yG)) when a _(y)>0 and a_(z)>0   Formula 4

A_(xG), A_(yG): gravity acceleration 1G detected by each of the acceleration sensors 5 a and 5 b of the x and y axes

a_(x), a_(y), a_(z): the current value detected by each of the acceleration sensors 5 a, 5 b, and 5 c of the x, y, and z axes (local acceleration)

θ_(x), θ_(y): initial posture angle from the X and Y axes of the sensor substrate in the global coordinate system

Furthermore, a sine is used in Formulas 3 and 4, but the initial posture angle can be calculated also with a cosine or other calculation methods.

Next, in Step ST104, the initial posture angle (azimuth) around the global Z axis of the operation device 10 is calculated based on information calculated in Step ST103 and information of magnetic intensities detected by the magnetic sensor 7 in each axis direction in the local coordinate system.

For the calculation, Formula 5 below is used. In Formula 5, magnetic intensities (local magnetic intensities) detected by each of the magnetic sensors 7 a, 7 b, and 7 c of the x, y, and z axes are set to h_(x), h_(y), and h_(z). In addition, magnetic intensities (global magnetic intensities) of the global X, Y, and Z axis directions obtained from the calculation are set to H_(x), H_(y), and H_(z).

H _(x) =h _(x) cos θ_(y) +h _(y) sin θ_(x) sin θ_(y) −h _(z) cos θ_(x) sin θ_(y)

H _(y) =h _(y) cos θ_(x) +h _(z) sin θ_(x)

θ_(z) (azimuth)=arctan(H _(y) /H _(x))   Formula 5

h_(x), h_(y), h_(z): magnetic intensity of the x, y, and z axis directions in the local coordinate system (local magnetic intensity)

H_(x), H_(y): magnetic intensity of the global X and Y axis directions (global magnetic intensity)

θ_(z): initial posture angle around the global Z axis (azimuth)

The operation device 10 can recognize the azimuth of the sensor substrate 20 around the global Z axis by using the magnetic sensor 7 which detects geomagnetism as above. When Formulas 3 to 5 are calculated, the CPU 2 and software in which the calculation content is described function as initial posture angle calculation units.

As above, the operation device 10 can recognize the initial posture (inclination for the X, Y, and Z axes) of the sensor substrate 20 in the global coordinate system with the calculation process of Steps ST103 and ST104. In other words, the operation device 10 can recognize its own posture without being conscious of the way and the direction of holding the operation device 10 by the user. As a result, the user can start an operation using the operation device which takes an arbitrary posture in a three-dimensional space.

Next, in Step ST105, angular velocity detected by the angular velocity sensor 6 at the operation start, in other words, immediately after the operation start, is converted into a global angular velocity in the global coordinate system based on information of the initial posture angles (θ_(x), θ_(y), and θ_(z)) calculated in Steps ST103 and ST104. In other words, this is rotational coordinate conversion. The calculation process uses Formula 6. In this case, the CPU 2 and software in which the calculation content is described function as coordinate conversion units.

$\begin{matrix} {\begin{pmatrix} W_{x} \\ W_{y} \\ W_{z} \end{pmatrix} = {\begin{pmatrix} 1 & 0 & 0 \\ 0 & {\cos \; \theta_{x}} & {\sin \; \theta_{x}} \\ 0 & {{- \sin}\; \theta_{x}} & {\cos \; \theta_{x}} \end{pmatrix}\begin{pmatrix} {\cos \; \theta_{y}} & 0 & {{- \sin}\; \theta_{y}} \\ 0 & 1 & 0 \\ {\sin \; \theta_{y}} & 0 & {\cos \; \theta_{y}} \end{pmatrix}\begin{pmatrix} {\cos \; \theta_{z}} & {\sin \; \theta_{z}} & 0 \\ {{- \sin}\; \theta_{z}} & {\cos \; \theta_{z}} & 0 \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} w_{x} \\ w_{y} \\ w_{z} \end{pmatrix}}} & {{Formula}\mspace{14mu} 6} \end{matrix}$

w_(x), w_(y), w_(z): angular velocity around the local x, y, and z axes (local angular velocity)

W_(x), W_(y), W_(z): angular velocity around the global X, Y, and Z axes (global angular velocity)

In Step ST106, an angle R_(x) around the global X axis is calculated using the global angular velocity calculated as above. In other words, a global angle (of the X axis direction component) is calculated. The calculation process uses Formula 7. The calculation process uses trapezoidal integration. Angles R_(y) and R_(z) around the global Y and Z axes are also calculated in the same manner as R. The meaning of the process of Step ST106 is to change the initial posture angles (θ_(x), θ_(y), and θ_(z)) to new posture angles (R_(x), R_(y), and R_(z)), that is, to update the posture angles. In this case, the CPU 2 and the software in which the calculation content is described function as updating units.

$\begin{matrix} {{R_{x}\left( t_{n} \right)} = \frac{\left( {{W_{x}\left( t_{n - 1} \right)} + {W_{x}\left( t_{n} \right)}} \right) \times \Delta \; t}{2}} & {{Formula}\mspace{14mu} 7} \end{matrix}$

R_(x): an angle around the X axis in the global coordinate system (global angle (global posture angle))

(t_(n)): a value obtained in n-th order

Δt=t _(n) −t _(n−1)

If the global angle is calculated as above, the information is transmitted (output) to the display device 50 by the transmitter 8 (Step ST107). In the current point, the global angle is a global angle at the initial time (that is, of the operation start time). The display device 50 can receive the information and display the object 51 setting the initial global angle as a posture angle at the start of motions of the object 51. If the display device 50 receives information of the global angle for the second time and thereafter, the display device 50 displays the object 51 taking a posture according to the global angle on the display unit 52.

Furthermore, the global angle can be obtained by various integration processes such as the midpoint rule or the Simpson's rule, not being limited to the trapezoidal integration as in Formula 7.

Herein, in the initial stage, the coordinate conversion units executes the coordinate conversion process for the local angular velocity (initial value) based on the information of the initial posture angles (θ_(x), θ_(y), and θ_(z)) in Step ST105. However, the coordinate conversion units execute the coordinate conversion process for the local angular velocity (value of the second time and thereafter) based on the information of the global angles (R_(x), R_(y), and R_(z)) calculated in Step ST106 in the process of Step ST105 of the second time and thereafter (other than the initial stage). The calculation process uses Formula 8 below.

$\begin{matrix} {\begin{pmatrix} W_{x} \\ W_{y} \\ W_{z} \end{pmatrix} = {\begin{pmatrix} 1 & 0 & 0 \\ 0 & {\cos \; R_{x}^{\prime}} & {\sin \; R_{x}^{\prime}} \\ 0 & {{- \sin}\; R_{x}^{\prime}} & {\cos \; R_{x}^{\prime}} \end{pmatrix}\begin{pmatrix} {\cos \; R_{y}^{\prime}} & 0 & {{- \sin}\; R_{y}^{\prime}} \\ 0 & 1 & 0 \\ {\sin \; R_{y}^{\prime}} & 0 & {\cos \; R_{y}^{\prime}} \end{pmatrix}\begin{pmatrix} {\cos \; R_{z}^{\prime}} & {\sin \; R_{z}^{\prime}} & 0 \\ {{- \sin}\; R_{z}^{\prime}} & {\cos \; R_{z}^{\prime}} & 0 \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} w_{x} \\ w_{y} \\ w_{z} \end{pmatrix}}} & {{Formula}\mspace{14mu} 8} \end{matrix}$

The global angles of the operation device 10 gradually changes (every second). Therefore, specifically in Formula 8, the rotational coordinate conversion is performed based on a value sequentially with the global angles added as shown in formulas below.

R _(x) ′=R _(x)(t _(n))+R _(x)(t _(n+1))

R _(y) ′=R _(y)(t _(n))+R _(y)(t _(n+1))

R _(z) ′=R _(z)(t _(n))+R _(z)(t _(n+1))

However, depending on the specification of software for displaying images by the display device 50, (R_(x), R_(y), and R_(z)) may be used instead of (R_(x)′, R_(y)′, and R_(z)′) in Formula 8 (the same as in Formula 9 below).

The information of the global angles (R_(x), R_(y), and R_(z)) calculated in Step ST106 is also used in the process of Step ST108. In Step ST108, the coordinate conversion units convert local acceleration into global acceleration using the information of the global angles in the same manner as in Formula 8. The calculation process uses Formula 9 below.

$\begin{matrix} {\begin{pmatrix} A_{x} \\ A_{y} \\ A_{z} \end{pmatrix} = {\begin{pmatrix} 1 & 0 & 0 \\ 0 & {\cos \; R_{x}^{\prime}} & {\sin \; R_{x}^{\prime}} \\ 0 & {{- \sin}\; R_{x}^{\prime}} & {\cos \; R_{x}^{\prime}} \end{pmatrix}\begin{pmatrix} {\cos \; R_{y}^{\prime}} & 0 & {{- \sin}\; R_{y}^{\prime}} \\ 0 & 1 & 0 \\ {\sin \; R_{y}^{\prime}} & 0 & {\cos \; R_{y}^{\prime}} \end{pmatrix}\begin{pmatrix} {\cos \; R_{z}^{\prime}} & {\sin \; R_{z}^{\prime}} & 0 \\ {{- \sin}\; R_{z}^{\prime}} & {\cos \; R_{z}^{\prime}} & 0 \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} a_{x} \\ a_{y} \\ a_{z} \end{pmatrix}}} & {{Formula}\mspace{14mu} 9} \end{matrix}$

A_(x), A_(y), A_(z): acceleration around the global X, Y, and Z (global acceleration)

The coordinate conversion units execute coordinate conversion based on the information of global angles in stages other than the initial stage also in Step ST108 as above.

As above, if the initial posture angles are calculated for the first time, the global angles calculated in Step ST106 are used in calculations of the second time and thereafter without using the initial posture angles. Hereinbelow, the reason will be described.

At the start of the operation of the operation device 10 by the user, local angular velocity is converted into global angular velocity using the information of initial posture angles calculated based on information including acceleration obtained by the acceleration sensor 5. In other words, at the moment of starting the operation, the acceleration sensor 5 detects only gravity acceleration practically; initial posture angles are calculated based on information including the gravity acceleration, and coordinate conversion is performed based on the initial posture angles.

However, during the operation by the user thereafter, the acceleration sensor 5 detects a value obtained by adding movement acceleration (inertia acceleration) to the gravity acceleration. In other words, during the operation by the user, the posture of the sensor substrate 20 changes every second. Thus, if a posture angle is calculated based on acceleration including such movement acceleration obtained by the acceleration sensor 5 during the operation of the user, a serious error occurs.

Therefore, in the present embodiment, a conversion process is executed for local angular velocity acquired after local angular velocity acquired as an initial value based on information not including information of movement acceleration, that is, information of a posture angle updated using local angular velocity, at least once (information obtained after passing through Steps ST105 and ST106 at least once). This is because a value of the local angular velocity is not affected by movement acceleration.

According to the calculation process, it is possible to suppress the circumstance in which the influence caused by movement acceleration generated during the operation of the operation device 10 by the user is exerted during calculation of a posture angle of the operation device 10 and thereby causing an error in the calculation.

Next, in Step ST109, velocity is calculated based on the global acceleration calculated in Step ST108, and in Step ST110, a movement distance is calculated from the velocity. The calculation process can be executed using various integration methods of the above-described Step ST106. In Step ST111, the operation device 10 transmits (outputs) the information of the calculated distance to the display device 50. The display device 50 receives the distance information, and displays the object 51, which moves as far as the distance, on the display unit 52.

As described above, since the information of the posture angle updated in Step ST106 does not include information of movement acceleration, it is possible to faithfully reproduce the motions of the operation device 10 as the motions of the object 51 by converting the local acceleration into the global acceleration based on the information of the posture angle. Accordingly, the user can perform the operation intuitively.

As described above, in the present embodiment, even if the operation device 10 held by the user takes any posture in a three-dimensional space, it is possible that the posture of the sensor substrate 20 is recognized while suppressing the occurrence of a calculation error, whereby the object 51 can be operated by the operation device 10.

In the above description, an embodiment in which the operation device 10 executes all the processes shown in FIG. 6 is introduced. However, a part of the processes shown in FIG. 6 may be executed by the display device 50. For example, the operation device 10 may execute the process up to Step ST101, and transmit information of acceleration, angular velocity, and magnetic intensity detected by each of the sensors 5, 6, and 7 to the display device 50. The display device 50 receives the information, and executes the processes of Step ST102 and thereafter. Alternatively, the operation device 10 may execute the processes, for example, up to Step ST102, . . . , or ST105, and the display device 50 may execute the remaining processes.

Of which process the operation device 10 and the display device 50 will take charge may be appropriately determined based on environmental components, for example, calculation process performance thereof, costs thereof, chip size thereof, and the like.

[Specific Description of Application Example of Information Processing System]

FIG. 9 is a diagram showing the appearance when a user actually operates the object 51 using the operation device 10 according to the embodiment of the disclosure. This is the appearance in which the user draws the operation device 10 from the display unit 52 of a 3D TV as the display device 50 along the negative direction of the X axis of the global coordinate system. In this case, the display device 50 displays as if the object 51 moves to the front of the user according to the operation of the user by adjusting parallax. In the same manner, when the user pushes the operation device 10 along the positive direction of the X axis of the global coordinate system, the display device 50 displays as if the object 51 moves in the depth direction of the display unit 52.

The three-dimensional display on the global X axis as above is possible by associating the motions of the operation device 10 in the global coordinate with the parallax of video displayed on the display device 50. As shown in FIG. 10, the distance between the display unit 52 of the display device 50 and (eyes of) the user, that is, the viewing distance is set to L.

FIGS. 11 and 12 are diagrams for illustrating a display principle of 3D video in the depth direction (X axis direction). Referring to FIG. 11, if setting is performed as below:

L: viewing distance;

P: parallax of video;

E: distance between eyeballs; and

D: depth of the object, then, the following is valid,

P=(D×E)/(D+L) based on D:P=(D+L):E.

For example, when E=65 mm, L=2 m, and the object 51 is viewed by the user so as to be displayed at the position of 24 m (D=24 m) of the depth to the display unit 52, P=6 cm. In other words, it is better to generate parallax images 51 a and 51 b which are deviated from each other by 6 cm, constituting the object 51.

The motions of the operation device 10 in the X axis direction of the global coordinate can be linked to 3D video by associating the parallax P and a movement distance T of the operation device 10 in the screen in the global coordinate system as P=αT (α is a proportional constant).

The relation shown in FIG. 12 takes the same point of view as in FIG. 11.

P=(D×E)/(L−D) based on D:P=(L−D):E

For example, when E=65 mm, L=2 m, and the object 51 is viewed by the user so as to be displayed at the position of 1.2 m (D=1.2 m) of the front from the display unit 52, P=10 cm. In other words, it is better to generate parallax images 51 a and 51 b which are deviated from each other by 10 cm, constituting the object 51.

The motions of the operation device 10 in the X axis direction of the global coordinate can be linked to 3D video by associating the parallax P and a movement distance T of the operation device 10 in the screen in the global coordinate system as P=αT (α is a proportional constant).

Other Embodiment

An embodiment according to the disclosure is not limited to the embodiment described above, and realized in various forms of embodiments.

In the above-described embodiment, a value detected by each of the sensors for the first time after the start of an operation is determined at the start determination process of Step ST102 is described as a local value (local acceleration, local angular velocity, and local magnetic intensity). Any one of values detected by each of the sensors for a few predetermined times from the time point when the start of the operation is determined at the start determination process, or the average value, the intermediate value, or the like of the values may be set to a local value. In other words, the start of the operation is a notion including a predetermined time period after the operation is started, and a notion including a certain period to the extent that a user does not feel a sense of incompatibility with the first movement of the object. The predetermined period is also based on a clock frequency of CPUs in the operation device and the display device.

In the above-described embodiment, the operation device 10 and the display device 50 are wirelessly connected, but may be connected to each other in a wired manner. A communication medium between the devices may be the Internet.

In the above-described embodiment, the case is exemplified in which the operation device 10 and the display device 50 are in the same room, but for example, the devices may be located in separate buildings, or remote places. In that case, a communication medium between the devices may be the Internet as described above.

The operation target may be a robot or other machine in the actual world, not being limited to images displayed on a screen. In that case, a remote operation may be realized as above.

The operation device 10 described above has a spherical outer shape, but is not limited thereto, and can adopt various outer shapes.

The present disclosure contains subject matter related to that disclosed in Japanese Priority Patent Application JP 2010-278809 filed in the Japan Patent Office on Dec. 15, 2010, the entire contents of which are hereby incorporated by reference.

It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and alterations may occur depending on design requirements and other factors insofar as they are within the scope of the appended claims or the equivalents thereof. 

1. An information processing device comprising: an acquisition unit configured to acquire information of acceleration, angular velocity, and magnetic intensity of an operation device, which includes an acceleration sensor having an orthogonal three-axis detection axis, an angular velocity sensor having the orthogonal three-axis detection axis, and a magnetic sensor having the orthogonal three-axis detection axis in a local coordinate system and can be operated in an arbitrary posture by a user in a three-dimensional space, which are detected by each of the acceleration sensor, the angular velocity sensor, and the magnetic sensor; a coordinate conversion unit configured to convert the angular velocity acquired by the acquisition unit into global angular velocity in a global coordinate system which indicates the three-dimensional space using information of posture angles of the operation device in the global coordinate system; an initial posture angle calculation unit configured to calculate a posture angle of the operation device in an initial stage in the global coordinate system out of the posture angles based at least in part on the information of the acceleration and the magnetic intensity acquired by the acquisition unit at a start of an operation of the operation device by the user; an updating unit configured to update the posture angle of the operation device in the global coordinate system based at least in part on information of the global angular velocity converted by the coordinate conversion unit; and a control unit configured to cause the coordinate conversion unit to convert the first angular velocity acquired by the acquisition unit at the start of the operation into the global angular velocity using information of the initial posture angle calculated by the angle calculation unit and to convert a second angular velocity acquired after the acquisition of the first angular velocity into the global angular velocity using information of the updated posture angle.
 2. The information processing device according to claim 1, wherein the coordinate conversion unit converts the acceleration acquired by the acquisition unit into global acceleration in the global coordinate system based at least in part on information of a posture angle of the operation device updated by the updating unit.
 3. The information processing device according to claim 1, further comprising: a determination unit configured to determine that an operation of the operation device has been started by the user using information of at least one of the acceleration, the angular velocity and the magnetic intensity acquired by the acquisition unit.
 4. The information processing device according to claim 1, wherein an operation target of the operation device is a three-dimensional image displayed on the screen of a display device which is electrically connected to the information processing device.
 5. An information processing system comprising: an operation device which includes an acceleration sensor having an orthogonal three-axis detection axis, an angular velocity sensor having the orthogonal three-axis detection axis, a magnetic sensor having the orthogonal three-axis detection axis in a local coordinate system, and a transmission unit configured to transmit information of acceleration, angular velocity, and magnetic intensity detected by each of the acceleration sensor, the angular velocity sensor, and the magnetic sensor, and can be operated in an arbitrary posture by a user in a three-dimensional space; and a control device which includes: a reception unit configured to receive the information transmitted from the operation device, a coordinate conversion unit configured to convert the received angular velocity into global angular velocity in a global coordinate system using information of posture angles of the operation device in the global coordinate system indicating the three-dimensional space, an initial posture angle calculation unit configured to calculate a posture angle of the operation device in an initial stage in the global coordinate system of the operation device out of the posture angles based at least in part on information of the acceleration and the magnetic intensity received by the reception unit at a start of an operation of the operation device by the user, an updating unit configured to update the posture angle of the operation device in the global coordinate system based at least in part on information of the global angular velocity converted by the coordinate conversion unit, and a control unit configured to cause the coordinate conversion unit to convert the first angular velocity received by the reception unit at the start of the operation into the global angular velocity using information of the initial posture angle calculated by the angle calculation unit and to convert a second angular velocity received after the reception of the first angular velocity into the global angular velocity using information of the updated posture angle.
 6. An information processing method comprising: acquiring information of acceleration, angular velocity, and magnetic intensity of an operation device, which includes an acceleration sensor having an orthogonal three-axis detection axis, an angular velocity sensor having the orthogonal three-axis detection axis, and a magnetic sensor having the orthogonal three-axis detection axis in a local coordinate system and can be operated in an arbitrary posture by a user in a three-dimensional space, which are detected by each of the acceleration sensor, the angular velocity sensor, and the magnetic sensor; calculating a posture angle of an initial stage out of posture angles of the operation device in a global coordinate system indicating the three-dimensional space based at least in part on information of the acceleration and the magnetic intensity acquired at a start of an operation of the operation device by the user; converting a first angular velocity acquired at the start of the operation into a global angular velocity in the global coordinate system using the calculated posture angle of the initial stage; calculating a new posture angle instead of the posture angle of the initial stage based at least in part on information of the converted global angular velocity; and converting a second angular velocity acquired after the acquisition of the first angular velocity into the global angular velocity using information of the calculated new posture angle. 